Fork me on GitHub

Zabbix 3.0 监控 MySQL [六]

Mysql 监控

  zabbix 自带了一个监控 mysql 的模板,但是真正监控 mysql 的并不是 zabbix 自带的模板。而是 percona 公司的一个监控 mysql 模板
 percona 官网: www.percona.com

Percona 组成介绍

1、php 脚本 用来数据采集
2、shell 脚本 用来调用采集信息
3、zabbix 配置文件
4、zabbix 模板文件

安装文档:https://www.percona.com/doc/percona-monitoring-plugins/LATEST/zabbix/index.html
  percona 利用的是 php 来获取 mysql 的相关信息,所以如果我们想使用 percona 插件监控 mysql 就需要在 agent 端安装php。在安装文档上有写哦~

安装步骤: 查看上面的链接也可以进行安装
我们安装在 zabbix-server 上,因为上面有一个 MySQL

[root@linux-node1 web]# yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm
[root@linux-node1 web]# yum install percona-zabbix-templates php php-mysql -y
#percona 插件是通过 php 去获取 mysql 的参数,所以我们要安装 php 和 php-mysql
我们可以查看它都安装了那些软件
[root@linux-node1 web]# rpm -ql percona-zabbix-templates
/var/lib/zabbix/percona
/var/lib/zabbix/percona/scripts
/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh  #shell 脚本
/var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php  #php 获取 mysql 信息
/var/lib/zabbix/percona/templates
/var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf #zabbix 配置文件
/var/lib/zabbix/percona/templates/zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.6.xml  #zabbix 模板文件
在 percona 组成我们已经说过了,此处只是略微介绍。

我们将 zabbix 模板下载下来

[root@linux-node1 web]# sz /var/lib/zabbix/percona/templates/zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.6.xml

  然后我们需要将模板通过 web 界面导入到 zabbix 中

提示:如果出现错误,可能是 zabbix 3.0 版本的问题。我们这里提供了一个生产的模板
下载链接: https://pan.baidu.com/s/1TgsPR3qjWyxjwKYQrz6fWQ密码:u09h

然后从新上传即可

复制配置文件

[root@linux-node1 web]# cp /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/
[root@linux-node1 web]# ls /etc/zabbix/zabbix_agentd.d/
#安装完软件包后会在 /var/lib/zabbix/percona/templates/ 目录下产生一个配置文件,我们将它拷贝,因为在前面的博文中,我们已经修改过 zabbix 的配置文件[Include=/etc/abbix/zabbix_agentd.d/] 所以将配置文件放在这个目录下,zabbix 就会自己在这个目录下查找相关信息
[root@linux-node1 web]# systemctl restart zabbix-agent.service 
重启一下!

下面就应该配置与 MySQL 的连接
/var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php.cnf创建一个文件

[root@linux-node1 ~]# cat /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php.cnf
<?php
$mysql_user = 'root';
$mysql_pass = '';
#用户名密码可以自己创建,有密码写密码,没密码为空就好了

提示: 正常这里的用户我们应该创建一个专门用来监控的,由于我这里是测试环境。就不浪费时间了

测试

查看是否可以获取到值,随便找一个测试

[root@linux-node1 ~]# cat /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf
选择一个肯定有值的 key
[root@linux-node1 ~]# cat /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf|grep gm
UserParameter=MySQL.read-views,/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gm
测试结果如下:
[root@linux-node1 ~]# cd /var/lib/zabbix/percona/scripts/
[root@linux-node1 scripts]# ./get_mysql_stats_wrapper.sh gm
1
[root@linux-node1 scripts]# ./get_mysql_stats_wrapper.sh gw
9736342
可以获取到值,说明没有问题

温馨提示: shell 脚本中数据库的路径是 localhost,如果我们没有授权 localhost 会获取不到值

[root@linux-node1 scripts]# cat get_mysql_stats_wrapper.sh 
HOST=localhost
RES=`HOME=~zabbix mysql -e 'SHOW SLAVE STATUS\G' | egrep '(Slave_IO_Running|Slave_SQL_Running):' | awk -F: '{print $2}' | tr '\n' ','`
#mysql 是通过命令来获取的,如果环境变量不一样 也可能造成影响

Zabbix_Web 界面配置

  模板已经上传到 zabbix 中,这时候我们就需要进行设置了

提示: 我们还需要授权 /tmp 下的一个文件,因为默认情况下 zabbix 在文件中获取的值

修改完就可以获取值了,所以我们还需要测试

结果如下图

思想:

  如果出现错误我们需要先查看 shell 的脚本,因为 shell 是去调用 php。 错误的因素有很多,最简单的方法就是用 shell 后面加上 key 看看是否可以有值。
  其中报错最多的地方就是 php 和 mysql 连接的问题,还有我们 mysql 授权的一些问题。

MYSQL 监控 完!

转载自:Zabbix 3.0 监控 MySQL [六]

赞赏是最好的支持与鼓励!
-------------本文结束感谢您的阅读-------------